Tableau ServerからBigQueryに接続してみた(サーバー単位)

Tableau ServerからBigQueryに接続してみた(サーバー単位)

Tableau ServerとBigQuery双方で設定が必要です
Clock Icon2023.06.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。データアナリティクス事業本部 BIチームのkariyaです。
Tableau DesktopでBigQueryのデータを参照するワークブックを作成してTableau Serverにパブリッシュした際、ワークブックを開いた際にBigQueryへの認証が通らないことがありました。
今回自分が実施した検証内容をまとめます。

前提

Tableau Serverへのパブリッシュ時に「パスワード埋め込み」を選択した場合は、BigQueryの認証なしでワークブックを開くことができます。

今回はTableau Serverへのパブリッシュ時に「ユーザーにメッセージ表示」を選択した場合の検証となります。

検証環境

  • Windows Server 2019
  • Tableau Server 2022.3.0
  • Tableau Desktop 2022.3.6

やってみる

Tableau ServerにhttpsでアクセスできるURLの取得

Tableau Serverへのアクセスはデフォルトではhttp接続ですが、BigQueryとの認証設定の際にはhttps接続が必要になります。 今回の検証のため、オレオレ証明書を取得してSSL化し、https接続できるようにしました。

BigQueryの設定画面で認証情報を作成する

BigQueryのナビゲーションメニュー > APIとサービス > 認証情報 を選択します。

認証情報を作成 > OAuthクライアントID を選択します。

下記を記載して、作成ボタンを押します。
- 承認済みのJavaScript生成元:httpsで始まるTableau Serverのアドレス
- 承認済みのリダイレクトURI:httpsで始まるTableau Serverのアドレスに/auth/add_oauth_tokenを追記

作成後にクライアントID、クライアントシークレットが確認できますので、リダイレクトURIと一緒にメモしておきます。

Tableau Server(TSM)でBigQueryの認証情報を設定する

コマンドプロンプトで下記コマンドを順番に実行します。クライアントID、クライアントシークレット、リダイレクトURIは先ほどメモした内容に置き換えます。

tsm configuration set -k oauth.google.client_id -v <your_client_ID>

tsm configuration set -k oauth.google.client_secret -v <your_client_secret>

tsm configuration set -k oauth.google.redirect_uri -v <your_authorized_redirect_URI>

tsm pending-changes apply

pending-changes applyを実行するとTableau Serverの再起動を求められるので、再起動が終わるまで待ちます。

動作確認

ここまで設定すると、BigQueryへ接続しているワークブックをTableau Server上で閲覧できるようになります。

Tableau Serverにパブリッシュしたワークブックを開くと認証を求められますので、サインインをクリックします。

Googleアカウントの認証をします。

認証後、ワークブックの閲覧ができました。

認証をした後は、マイアカウントの設定 > セキュリティ > データソースの保存済み認証資格情報 にBigQueryの認証情報が残っていました。 この認証があれば、再度ワークブックを開いた時には認証なしで閲覧ができました。

おわりに

今回はサーバー単位での認証をしていますが、サイト単位でのカスタムOAuthの設定もあるようですので、引き続き検証していきたいと思います。

最後までお読み頂きありがとうございました。何かのヒントになれば嬉しいです。

参考資料

Tableau Server on Windows ヘルプ:Google での OAuth の設定

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.